package com.icongyou.enterprise.data_aggregation.entity;

import lombok.Data;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.util.List;

/**
 * 提交记录实体
 * 个人任务：每个学生一条记录，contributionRate为null
 * 团队任务：每个团队一条记录，contributionRate为JSON数组包含所有成员贡献度
 */
@Data
public class SubmissionEntity {
    /**
     * 提交ID
     */
    private String submissionId;

    /**
     * 任务ID（引用任务表assignment_id）
     */
    private String assignmentId;

    /**
     * 学生ID（个人任务时使用，团队任务时为队长或提交者ID）
     */
    private String studentId;

    /**
     * 团队ID（引用团队表team_id）
     */
    private String teamId;

    /**
     * 作品内容URL
     */
    private String contentUrl;

    /**
     * 贡献度（必填字段）
     * 个人任务：包含一个元素的List，该学生rate为100.0
     * 团队任务：包含多个元素的List，所有成员rate之和为100.0
     */
    private List<ContributionItem> contributionRate;

    /**
     * 提交时间
     */
    private LocalDateTime submissionTime;

    /**
     * 提交状态
     */
    private String status;

    /**
     * 实际完成时长
     */
    private Integer actualDuration;

    /**
     * 是否逾期（0：未逾期、1：逾期）
     */
    private Integer isLate;

    /**
     * 点赞数
     */
    private Integer likeCount;

    /**
     * 收藏数
     */
    private Integer favoriteCount;

    /**
     * 创建时间
     */
    private LocalDateTime createdTime;

    /**
     * 贡献度项
     */
    @Data
    public static class ContributionItem {
        /**
         * 学生ID
         */
        private String studentId;
        
        /**
         * 贡献度比例（0-100）
         */
        private BigDecimal rate;
    }
}